iT邦幫忙

2024 iThome 鐵人賽

DAY 5
0
自我挑戰組

初學Unity到遊戲開發!系列 第 7

了解一個簡單的2D角色控制

  • 分享至 

  • xImage
  •  
  1. 基本設置
    在Unity中創建一個新的2D專案。首先,需要導入角色精靈圖並將其放置在場景中。為了實現角色控制,確保角色物件中添加了 Rigidbody2DBoxCollider2D 組件。Rigidbody2D 用於處理物理互動,而 BoxCollider2D 用來定義角色的碰撞範圍。

  2. 創建腳本
    接下來,創建一個新的C#腳本,命名為 PlayerController.cs,然後將它附加到角色物件上。這個腳本將負責處理角色的移動邏輯。

  3. 編寫控制邏輯
    以下是簡單的角色控制範例:

using UnityEngine;

public class PlayerController : MonoBehaviour
{
    public float moveSpeed = 5f; // 控制角色移動速度
    private Rigidbody2D rb; // 角色的Rigidbody2D組件
    private Vector2 movement; // 存儲移動方向

    void Start()
    {
        rb = GetComponent<Rigidbody2D>(); // 獲取Rigidbody2D組件
    }

    void Update()
    {
        // 獲取玩家輸入
        movement.x = Input.GetAxis("Horizontal"); // 獲取水平輸入(A/D或左/右箭頭)
        movement.y = Input.GetAxis("Vertical");   // 獲取垂直輸入(W/S或上/下箭頭)
    }

    void FixedUpdate()
    {
        // 移動角色
        rb.MovePosition(rb.position + movement * moveSpeed * Time.fixedDeltaTime);
    }
}
  1. 代碼說明
    moveSpeed:這個變數用來控制角色的移動速度,根據需要進行調整。
    Rigidbody2D:用於處理物理運算,這樣角色可以依照物理規則進行移動和碰撞。
    Update():這個方法會在每一幀被呼叫,負責捕捉玩家的輸入。Input.GetAxis("Horizontal")和Input.GetAxis("Vertical")可以捕捉到從鍵盤傳入的方向。
    FixedUpdate():這個方法用於物理計算,確保移動是平滑的,避免因為幀率不同而導致移動不一致。

  2. 測試
    完成代碼後,運行遊戲,使用方向鍵或WASD鍵來控制角色的移動。角色應該可以在2D平面上自由移動。

  3. 擴展功能
    在基礎控制上,可以進一步添加多種功能,例如:

跳躍:在 Update() 方法中檢測按鍵,並在 FixedUpdate() 中為 Rigidbody2D添加向上的力,這樣角色就能跳躍。

if (Input.GetButtonDown("Jump"))
{
    rb.AddForce(Vector2.up * jumpForce, ForceMode2D.Impulse);
}

攻擊:設置一個攻擊按鍵,觸發攻擊動畫或傷害計算。
動畫控制:使用 Animator 組件,根據角色的移動狀態播放不同的動畫。


上一篇
了解3D遊戲對象(模型、光源、相機)
系列文
初學Unity到遊戲開發!7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言